package com.utils;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * FileUtil 类：提供文件与字节数组之间的转换工具方法。
 * 主要实现将文件转换为字节数组。
 *
 * @author team10
 */
public class FileUtil {

	/**
	 * 将文件转换为字节数组
	 *
	 * @param file 要转换的文件
	 * @return 文件的字节数组
	 * @throws IOException 文件读取异常
	 * @author team10
	 */
	public static byte[] FileToByte(File file) throws IOException {
		// 将文件数据转为输入流
		@SuppressWarnings("resource")
		InputStream content = new FileInputStream(file);  // 打开文件输入流
		ByteArrayOutputStream swapStream = new ByteArrayOutputStream();  // 创建字节数组输出流
		byte[] buff = new byte[100];  // 缓冲区
		int rc = 0;

		// 读取文件数据并写入字节数组输出流
		while ((rc = content.read(buff, 0, 100)) > 0) {  // 每次读取100字节
			swapStream.write(buff, 0, rc);  // 将读取的数据写入输出流
		}

		// 将字节数组输出流的内容转换为字节数组并返回
		return swapStream.toByteArray();  // 返回文件的字节数组
	}
}
